diff options
Diffstat (limited to 'ui/routes/(app)/ch/[channel]/+page.svelte')
| -rw-r--r-- | ui/routes/(app)/ch/[channel]/+page.svelte | 25 |
1 files changed, 9 insertions, 16 deletions
diff --git a/ui/routes/(app)/ch/[channel]/+page.svelte b/ui/routes/(app)/ch/[channel]/+page.svelte index 095e66a..c8507cc 100644 --- a/ui/routes/(app)/ch/[channel]/+page.svelte +++ b/ui/routes/(app)/ch/[channel]/+page.svelte @@ -3,24 +3,17 @@ import { page } from '$app/state'; import ActiveChannel from '$lib/components/ActiveChannel.svelte'; import MessageInput from '$lib/components/MessageInput.svelte'; - import { channelsList, channelsMetaList, currentUser, logins, messages } from '$lib/store'; + import { runs } from '$lib/runs.js'; import * as api from '$lib/apiServer'; - let channel = $derived(page.params.channel); - let messageRuns = $derived( - $messages.inChannel(channel).map(({ sender, messages }) => { - let senderName = $derived($logins.get(sender)); - let ownMessage = $derived($currentUser !== null && $currentUser.id === sender); - - return { - sender: senderName, - ownMessage, - messages - }; - }) - ); + const { data } = $props(); + const { session } = data; let activeChannel; + const channel = $derived(page.params.channel); + const messages = $derived(session.messages.filter((message) => message.channel === channel)); + const messageRuns = $derived(runs(messages, session.currentUser)); + function inView(parentElement, element) { const parRect = parentElement.getBoundingClientRect(); const parentTop = parRect.top; @@ -49,12 +42,12 @@ const lastInView = getLastVisibleMessage(); if (lastInView) { const at = DateTime.fromISO(lastInView.dataset.at); - $channelsMetaList.updateLastReadAt(channel, at); + session.local.updateLastReadAt(channel, at); } } $effect(() => { - const _ = $messages.inChannel(channel); + const _ = session.messages; setLastRead(); }); |
